<?php
// 完全清理所有Smarty模板缓存的脚本

// 显示错误报告
error_reporting(E_ALL);
ini_set('display_errors', 1);

// 定义目录分隔符
define('DS', DIRECTORY_SEPARATOR);

// 1. 清理项目目录下的templates_c目录
$projectTemplatesCacheDir = realpath(__DIR__ . DS . 'templates_c');

if ($projectTemplatesCacheDir && is_dir($projectTemplatesCacheDir)) {
    echo "找到项目模板缓存目录: $projectTemplatesCacheDir<br>";
    
    // 获取目录中的所有文件
    $files = scandir($projectTemplatesCacheDir);
    
    // 遍历并删除所有缓存文件
    $projectDeletedCount = 0;
    foreach ($files as $file) {
        // 跳过.和..
        if ($file === '.' || $file === '..') continue;
        
        $filePath = $projectTemplatesCacheDir . DS . $file;
        
        if (is_file($filePath)) {
            if (unlink($filePath)) {
                $projectDeletedCount++;
                echo "已删除项目缓存文件: $file<br>";
            } else {
                echo "无法删除项目缓存文件: $file<br>";
            }
        }
    }
    
    echo "<br>项目缓存清理完成，共删除 $projectDeletedCount 个缓存文件。<br>";
} else {
    echo "未找到项目模板缓存目录: " . __DIR__ . DS . 'templates_c' . "<br>";
}

// 2. 清理系统临时目录中的view目录（BaseController中配置的编译目录）
$systemTempDir = sys_get_temp_dir();
$systemTemplatesCacheDir = $systemTempDir . DS . 'view';

if (is_dir($systemTemplatesCacheDir)) {
    echo "<br>找到系统临时模板缓存目录: $systemTemplatesCacheDir<br>";
    
    // 获取目录中的所有文件
    $files = scandir($systemTemplatesCacheDir);
    
    // 遍历并删除所有缓存文件
    $systemDeletedCount = 0;
    foreach ($files as $file) {
        // 跳过.和..
        if ($file === '.' || $file === '..') continue;
        
        $filePath = $systemTemplatesCacheDir . DS . $file;
        
        if (is_file($filePath)) {
            if (unlink($filePath)) {
                $systemDeletedCount++;
                echo "已删除系统临时缓存文件: $file<br>";
            } else {
                echo "无法删除系统临时缓存文件: $file<br>";
            }
        }
    }
    
    echo "<br>系统临时缓存清理完成，共删除 $systemDeletedCount 个缓存文件。<br>";
} else {
    echo "<br>未找到系统临时模板缓存目录: $systemTemplatesCacheDir<br>";
}

// 3. 修复BaseController中的编译目录配置（可选，可根据需要选择）
echo "<br><h3>完全缓存清理完成！</h3><br>";
echo "<p>以下是彻底解决缓存问题的建议：</p>";
echo "<ol>";
echo "    <li>定期运行此脚本清理所有缓存</li>";
echo "    <li>或者修改Frame/Libs/BaseController.class.php中的编译目录设置，将其指向项目内的templates_c目录</li>";
echo "    <li>清除浏览器缓存后重新访问用户管理页面</li>";
echo "</ol>";
echo "<p><strong>请现在刷新用户管理页面测试按钮功能：</strong></p>";
echo "<a href='http://localhost:63342/admin.php?c=User&a=user_manage' target='_blank'>http://localhost:63342/admin.php?c=User&a=user_manage</a>";
?>